From 264c8b7aac4d2c7ab164b35faca8073c114a3174 Mon Sep 17 00:00:00 2001 From: "arun.sharma@intel.com[kaf24]" Date: Mon, 13 Jun 2005 22:49:32 +0000 Subject: [PATCH] bitkeeper revision 1.1713.1.6 (42ae0d7cI1fdGe88s6RyEx8d0oy2wg) [PATCH] x64-vmxassist-fix2.patch Fix 64 bit build. Tested the binary built on a 64 bit platform on a 32 bit platform. Signed-off-by: Arun Sharma --- tools/firmware/vmxassist/Makefile | 14 +++++++++++--- tools/firmware/vmxassist/head.S | 1 + tools/firmware/vmxassist/trap.S | 3 ++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tools/firmware/vmxassist/Makefile b/tools/firmware/vmxassist/Makefile index 545acdf743..a9b142363c 100644 --- a/tools/firmware/vmxassist/Makefile +++ b/tools/firmware/vmxassist/Makefile @@ -18,6 +18,9 @@ # Place - Suite 330, Boston, MA 02111-1307 USA. # +XEN_ROOT = ../../.. +include $(XEN_ROOT)/tools/Rules.mk + # The emulator code lives in ROM space TEXTADDR=0x000D0000 DEFINES=-DDEBUG -DTEXTADDR=${TEXTADDR} @@ -32,19 +35,24 @@ CPP=cpp -P OBJCOPY=objcopy -p -O binary -R .note -R .comment -R .bss -S --gap-fill=0 CFLAGS=${DEFINES} -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float +ifeq ($(XEN_COMPILE_ARCH),x86_64) +CFLAGS += -m32 -march=i686 +LDFLAGS += -m elf_i386 +endif + OBJECTS = head.o trap.o vm86.o setup.o util.o all: vmxloader vmxloader: roms.h vmxloader.c - ${CC} ${DEFINES} -c vmxloader.c - $(CC) -o vmxloader.tmp -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o + ${CC} ${CFLAGS} ${DEFINES} -c vmxloader.c + $(CC) -o vmxloader.tmp -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o objcopy --change-addresses=0xC0000000 vmxloader.tmp vmxloader rm -f vmxloader.tmp vmxassist.bin: vmxassist.ld ${OBJECTS} ${CPP} ${DEFINES} vmxassist.ld > vmxassist.tmp - ${LD} -o vmxassist -nostdlib --fatal-warnings -N -T vmxassist.tmp ${OBJECTS} + ${LD} -o vmxassist ${LDFLAGS} -nostdlib --fatal-warnings -N -T vmxassist.tmp ${OBJECTS} nm -n vmxassist > vmxassist.sym ${OBJCOPY} vmxassist vmxassist.tmp dd if=vmxassist.tmp of=vmxassist.bin ibs=512 conv=sync diff --git a/tools/firmware/vmxassist/head.S b/tools/firmware/vmxassist/head.S index a657e64740..1541a1c8e9 100644 --- a/tools/firmware/vmxassist/head.S +++ b/tools/firmware/vmxassist/head.S @@ -106,6 +106,7 @@ rom_gdtr: * main and setup our own environment. */ .globl _start + .code32 _start: cli diff --git a/tools/firmware/vmxassist/trap.S b/tools/firmware/vmxassist/trap.S index a469f68fc8..e4294e88c2 100644 --- a/tools/firmware/vmxassist/trap.S +++ b/tools/firmware/vmxassist/trap.S @@ -20,7 +20,6 @@ #include "machine.h" #include "offsets.h" - /* * All processor exception/faults/interrupts end up here. * @@ -43,6 +42,7 @@ .endm .section .rodata + .code32 .align 4 .global trap_handlers trap_handlers: @@ -96,6 +96,7 @@ trap_handlers: TRAP_HANDLER 47, 0 /* irq 15 */ .text + .code32 .align 16 common_trap: /* common trap handler */ pushl %gs -- 2.30.2